package models

import (
	"time"

	"gorm.io/gorm"
)

// User 用户模型
type User struct {
	ID           uint           `json:"id" gorm:"primaryKey"`
	UserID       string         `json:"user_id" gorm:"not null;uniqueIndex;size:50"`   // 用户唯一标识
	OpenIMUserID string         `json:"openim_user_id" gorm:"size:100;index"`          // OpenIM用户ID
	Username     string         `json:"username" gorm:"not null;size:100;uniqueIndex"` // 用户名
	Nickname     string         `json:"nickname" gorm:"size:100"`                      // 昵称
	Avatar       string         `json:"avatar" gorm:"size:500"`                        // 头像URL
	Email        string         `json:"email" gorm:"size:100;index"`                   // 邮箱
	Phone        string         `json:"phone" gorm:"size:20;index"`                    // 手机号
	AreaCode     string         `json:"area_code" gorm:"size:10;index"`                // 手机区号
	Password     string         `json:"-" gorm:"not null;size:255"`                    // 密码（不返回给前端）
	Country      string         `json:"country" gorm:"size:100;index"`                 // 国家
	City         string         `json:"city" gorm:"size:100;index"`                    // 城市
	Bio          string         `json:"bio" gorm:"size:500"`                           // 个人简介
	IsActive     bool           `json:"is_active" gorm:"default:true"`                 // 是否激活
	CreatedAt    time.Time      `json:"created_at"`
	UpdatedAt    time.Time      `json:"updated_at"`
	DeletedAt    gorm.DeletedAt `json:"-" gorm:"index"`
}
